A content addressable memory (CAM) is a device that is capable of comparing an input data word with data words stored within its memory array, and returning a miss each time a word in the memory does not match the input data word, and a hit each time a word in the memory matches the input data word.
It is generally desirable that CAM devices are capable of fast operation, as for each CAM read operation all words in the memory array are generally accessed to generate a hit or miss value for every word of the array. To allow for a fast operation, the comparison of the bits of an input word with the bits stored in the CAM is performed within each memory cell of the CAM. This leads to the memory cells of a CAM being more complex and larger than those of a conventional SRAM (static random access memory) cell.
In some applications, the CAM function is not always required, and there is thus a need in the art for a CAM that is capable of being entirely or partially used as an SRAM during periods in which the CAM function is not required. Furthermore, there is a need in the art for a relatively compact CAM cell.